The present invention generally relates to object-oriented data processing systems, and more particularly to an object-oriented data processing system that describes the real world in terms of an object model.
In the object-oriented data processing system, the real world is grasped as an external definition and a corresponding internal definition, wherein the internal definition describes the details of the external definition. More specifically, the external definition includes iD information that identifies a corresponding internal definition, while the internal definition specified by the iD information is set in a concealed area which is concealed from outside. Thus, the real world is represented substantially by the external definitions only, in the form of an object world, while the object world generally includes a dynamic world and a static world. The static world includes classes and/or composite classes, wherein the classes and the composite classes provides the structure of the system. On the other hand, the dynamic world includes instances of the foregoing classes and/or composite classes, and these instances provide the motion of the dynamic world.
First, a description will be given with respect to an advantageous point of forming a capsule of objects, by referring to FIGS. 1A through 1C.
For example, executionable process data 214 are made up of a series of instructions (or instruction groups) 250 shown in FIG. 1A which are serialized in the processing sequence. A number of such instructions (or instruction groups) 250 form a processing unit 251 which executes a predetermined process or behavior.
Accordingly, the executionable process data 214 shown in FIG. 1A may be regarded as a collection of the processing units 251 which are serialized in the processing sequence as shown in FIG. 1B. The serialized executionable process data 214 shown in FIG. 1B as a whole carry out a specific operation. Hence, the executionable process data 214 for carrying out another specific operation is given as a connection of the processing units 251 having a different combination.
As the number of existing processing units 251 which make different behaviors becomes large, the individual processing units 251 are integrated under a predetermined method M as shown in FIG. 1C, so as to obtain an integrated processing unit group which carries out the same operation as the executionable process data 214 shown in FIG. 1B.
As a preliminary description, the relationship between object, object command and object component will be described.
First, a description will be given about the relationships between object, object command and object component.
FIG. 2 shows an example of the real world, that is, a model of company organization. Within a box representing "employees" in FIG. 2, there is a "secretary" belonging to a "work type=1," a "leader" belonging to a "work type=2," and a "worker" belonging to a "work type=3." A box representing "employees" belongs to a box representing a "team."
The "leader" is related to the "team" under the relationship "team leader." In addition, the "worker" is related to a "machine" under the relationship "worker/machine" within the box representing "work unit."
The "team" and the "machine" are related under the relationship "machine/workshop." The "worker" and the "machine" are related under the relationship "machine/worker." In addition, the "employee" and the "department/employee" are related under the relationship "department."
Furthermore, the "employee" and the "position" are related under the relationship "employee/attribute." The "work unit" and the "component" are related under the relationship "work unit/component."
The following relationships also exist.
(1) The "department" is related to the object "department name" and the object "dollars." PA0 (2) The "team" is related to the object "name" by a team identification number, related to the object "employee number" by the work type, related to the object "code name" and the object "surname" by the name, related to the object "dollars" by the salary, related to the object "dollars" by the average salary, and related to the object "number" by the average number of departments. PA0 (3) The "secretary" is related to the object "number" by the typing speed. PA0 (4) The "position" is related to the object "name" by the name, and related to the object "year" by the age. PA0 (5) The "component" is related to the object "component number" and the object "dollars." PA0 (6) The "work unit/component" is related to the object "number" by the volume. PA0 (7) The "work unit" is related to the object "time" by the required time. PA0 (8) The "machine" is related to the object "machine number", the object "dollars" and the object "machine name." PA0 (9) The "machine/work" is related to the object "time" by the time used. PA0 (a) The language is generally data-oriented in dealing with the resources. PA0 (b) No design principle is given with regard to the attempt to handle new processing with a new objective or target. PA0 (c) No substantial support is provided to the attempt of systematically considering the causality. The available instructions for realizing causality is applicable only within a class. PA0 (d) The structure of the system can only be incorporated in the form of "is-a" relationship or "part-of" relationship (support of the "part-of" relationship is given by a language other than small-talk). No other support is provided. PA0 (e) Setting of link is achieved by pointers, while such a process that uses the pointer is hardly effective for increasing the processing speed. PA0 (f) No substantial support is provided to the composite objects. Although there are languages that support composite objects, the composite objects that are supported are generally limited to the objects that have a simple nest structure. PA0 (g) While the system operates based upon method, which method defines the manner how to use individual information, the method available to the user is limited to those having a predetermined content. Without the method, the system does not operate. Further, the initialization of the system can be carried out only by those persons who know the content of the methods.
The model shown in FIG. 2 can generally be represented as shown in FIG. 3 if the "behavior" (or method) is indicated by a circular box, the "data" is indicated by a rectangular box, and the "relationship" is indicated by a rhombic box. In other words, (1) a method "a" and data "I" are combined and function as one larger data "IV", (2) methods "b" and "c" are related to data "II" by a relationship "e" and function as one larger data "V", (3) methods "c" and "d" are related to data "III" by a relationship ".beta." and function as one larger data "VI" and (4) a method "e" are related to data "IV" and "V" by a relationship ".tau." and function as still a larger data "VII". In other words, the behaviors (or methods) are gathered and represented as a larger group.
Each circular box, rectangular box and rhombic box shown in FIG. 3 can be treated as an individual object.
The forming of a capsule shown in FIG. 4A will now be considered for a collection of the method "a" and the data "I" shown in FIG. 3. In FIG. 4A, an opening is formed at the top of the capsule to indicate that a message communication can be made. If this opening of the capsule were closed as shown on the left side of FIG. 4B, such a capsule would then correspond to the data "IV" which is a collection of the method "a" and the data "I" in FIG. 3. If a composite object is obtained by adding a method "M" to the data "D" (capsule) shown on the left side of FIG. 4B, the data shown at the central part of FIG. 4B is obtained. Further, if a composite object is obtained by further adding a method to the data shown at the central part of FIG. 4B, the data shown on the right side of FIG. 4B is obtained. Hence, FIG. 4B shows the formation of composite objects shown in FIG. 4C by successively adding the methods.
The formation of the composite objects is not limited to that shown in FIG. 4B. For example, the composite objects may be formed as shown in FIG. 4C. In FIG. 4C, the data "D" of the object shown on the leftmost side is replaced by an object which is made up of a method and data, as shown on the second leftmost side. In this case, a message passing is required between a method "M1" and data "D1", and the method "M1" becomes one object as shown on the second rightmost side in FIG. 4C. As a result, objects "A" and "B" exist within an object "C" and the message passing exists between the objects "A" and "B".
Furthermore, if the method "M" of the object "B" is replaced by an object "B1" and the data "D" of the object "B" is replaced by an object "B2" both the object "B1" and "B2" exist within the object "B" and the message passing exists between the objects "B1" and "B2" as shown on the rightmost side in FIG. 4C.
Therefore, the composite objects are formed by successively combining the objects. For example, the so-called orimitive objects which will be described later are combined to form a capsule object, the capsule objects are combined to form an event object, and the event objects are combined to form a system object.
The data "D" described above is generally made up of a plurality of processing units which are the subject of the processing. On the other hand, the method "M" may be considered as information or information group instructing how the plurality of processing units are to be utilized. The objects represented in FIGS. 4A-4C represent a "processing unit" which is treated as an individual "processing unit" or a collection of "individual processing units".
As shown in FIG. 3, the individual objects "I", "II" and "III" form a part of the larger objects "IV", "V" and "VI" In addition, the objects "IV" "V" and "VI" form a part of still a larger object "VII". In other words the objects "IV", "V" and "VI" are in an "is-a" relationship or a "part-of" relationship with the object "VII" when viewed from the object "VII".
If the objects "I", "II" and "III" are regarded as minimum units, these objects "I", "II" and "III" may be said to be primitive objects. The capsule object is formed by a collection of such primitive objects. The event object is formed by a collection of such capsule objects. Furthermore, a still larger system object is formed by a collection of such event objects.
The objects described above which are made up of a collection of smaller objects are respectively referred to as composite object. The primitive object is included in the concept of the composite object. However, the primitive object is an object of the minimum unit as described above. For this reason, when a reference is generally made to a "composite object" or an "object", it is better to exclude the primitive object which exists by itself and cannot be decomposed further.
The object in the capsule form is generally made up of the composite objects described above in the capsule form.
The individual objects can be represented by the following model. That is, FIG. 5 is a diagram for explaining the object as a model.
An existence of the real world, such as a photograph, can be specified by the name which describes the photograph, and the nature of the photograph. The nature of the photograph indicates what kind of picture the photograph is, such as the person who took the picture and the time when the picture was taken. Hence, the photograph can be represented by a model using (i) the command which is used as the name specifying the photograph, (ii) the actual picture (entity data) of the photograph formed by black and white dots, and (iii) the link which describes the nature of the photograph, the location where the actual picture is stored, the relationship of the people in the photograph and the like.
The individual object described above can also be represented by a model such as that shown in FIG. 5 using the command, the link and the entity data.
FIG. 6 is a diagram for explaining the functions of the object as a model. As shown on the left side of FIG. 6, the object can be described using the command, the link and the entity data. It may be regarded that the dot data shown in FIG. 6 are given to the entity data. The capsule object, the event object and the system object are generally given a description specifying other objects X, Y and Z as the entity data, related to these other objects X, Y and Z, and use entity data x, y and z of these other objects X, Y and Z as shown on the right side of FIG. 6.
Thus, the real world is represented by a number of objects related with each other as indicated in FIG. 2, wherein each object represents a processing unit that may or may not include a number of subunits.
Based upon the foregoing analysis of the real world, attempts have been made to establish a relationship between information or aggregate of information and a corresponding processing.
In the case of conventional object-oriented languages, the "small-talk" is an example, one encounters following difficulties.